package com.gitee.lougnib.simple.lang.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;

/**
 * 字符串相关的工具类。
 *
 * @author lougnib@163.com
 * @since 2021/08/03
 * @version 2021/08/03
 */
public class LStringUtils {

	/** */
	private static final String REGEX_IP_ADDRESS = "((25[0-5]|2[0-4]\\d|1\\d{2}|0?[1-9]\\d|0?0?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d{2}|0?[1-9]\\d|0?0?\\d)";
	private static final Pattern PATTERN_IP_ADDRESS = Pattern.compile(REGEX_IP_ADDRESS);
	private static final Pattern PATTERN_IP_ADDRESS_IN_URL = Pattern.compile("(?<=//|)((\\w)+\\.)+\\w+");

	/**
	 * 判定文本的格式是否是 IP 地址。
	 *
	 * @param text 文本
	 * @return 是非值
	 */
	public static boolean isIpAddress(String text) {
		return PATTERN_IP_ADDRESS.matcher(text).matches();
	}

	/**
	 * 从 URL 中抽取 IP 地址。
	 * @param url URL
	 * @return IP 地址
	 */
	public static String extractIpAddressFromUrl(String url) {
		if (StringUtils.isBlank(url)) {
			return StringUtils.EMPTY;
		}
		Matcher m = PATTERN_IP_ADDRESS_IN_URL.matcher(url);
		if (m.find()) {
			return m.group();
		}
		return StringUtils.EMPTY;
	}
}
